package cn.iocoder.yudao.module.erp.controller.admin.planinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 每日计划新增/修改 Request VO")
@Data
public class PlanInfoSaveReqVO {

    @Schema(description = "id", example = "13195")
    private Long id;

    @Schema(description = "公司", example = "5674")
    private Long companyId;

    @Schema(description = "计划日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "计划日期不能为空")
    private Date nowTime;

    @Schema(description = "上载点", requiredMode = Schema.RequiredMode.REQUIRED, example = "32367")
/*    @NotNull(message = "上载点不能为空")*/
    private Long upId;

    @Schema(description = "下载点", requiredMode = Schema.RequiredMode.REQUIRED, example = "20875")
/*    @NotNull(message = "下载点不能为空")*/
    private Long downloadId;

    @Schema(description = "托运方式", requiredMode = Schema.RequiredMode.REQUIRED  )
    @NotNull(message = "托运方式不能为空")
    private Integer checkType;

    @Schema(description = "托运商")
    private String checkCompany;

    @Schema(description = "管输费", requiredMode = Schema.RequiredMode.REQUIRED, example = "18265")
    @NotNull(message = "管输费不能为空")
    private BigDecimal linePrice;

    @Schema(description = "管线")
    private String lineInfo;

    @Schema(description = "气源")
    private String gasResource;

    @Schema(description = "销售客户", example = "5563")
    private Long saleCustomerId;

    @Schema(description = "销售单价（元/方）", example = "30134")
    private BigDecimal salePrice;

    @Schema(description = "销售居间费（元/方）", example = "32069")
    private BigDecimal saleOtherPrice;

    @Schema(description = "提报数量（万方）", example = "14364")
    private BigDecimal saleSubCount;

    @Schema(description = "下载量（万方）", example = "24223")
    private BigDecimal saleRealCount;

    @Schema(description = "实际销售金额（元）", example = "15750")
    private BigDecimal saleAllCount;

    @Schema(description = "销售合同", example = "8563")
    private Long saleContractId;

    @Schema(description = "销售对账状态"  )
    private Integer saleAccountStatus;

    @Schema(description = "销售发票状态")
    private Integer saleBillStatus;

    @Schema(description = "备注"  )
    private String saleRemark;

    @Schema(description = "附件 URL" )
    private String saleFileUrl;

    @Schema(description = "采购客户", requiredMode = Schema.RequiredMode.REQUIRED, example = "16230")
    @NotNull(message = "采购客户不能为空")
    private Long buyCustomerId;

    @Schema(description = "采购单价（元/方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "17797")
    @NotNull(message = "采购单价（元/方）不能为空")
    private BigDecimal buyPrice;

    @Schema(description = "采购居间费（元/方）", example = "31282")
    private BigDecimal buyOtherPrice;

    @Schema(description = "实际采购单价（元/方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "19079")
 /*   @NotNull(message = "实际采购单价（元/方）不能为空")*/
    private BigDecimal buyRealPrice;

    @Schema(description = "提报数量（万方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "24205")
    @NotNull(message = "提报数量（万方）不能为空")
    private BigDecimal buySubCount;

    @Schema(description = "上载量（万方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "20424")
  /*  @NotNull(message = "下载量（万方）不能为空")*/
    private BigDecimal buyRealCount;

    @Schema(description = "实际采购金额（元）", requiredMode = Schema.RequiredMode.REQUIRED, example = "130")
    /*@NotNull(message = "实际采购金额（元）不能为空")*/
    private BigDecimal buyAllCount;

    @Schema(description = "采购合同", example = "20202")
    private Long buyContractId;

    @Schema(description = "备注"  )
    private String buyRemark;

    @Schema(description = "附件 URL" )
    private String buyFileUrl;

    @Schema(description = "状态"  )
    private Integer status;

    @Schema(description = "备注", example = "你猜")
    private String remark;

    @Schema(description = "附件 URL" )
    private String fileUrl;

    private BigDecimal buyOtherCount;

    private BigDecimal saleOtherCount;

}